package com.ruoyi.find.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * vr房源对象 second_hand_house
 * 
 * @author yang
 * @date 2025-09-24
 */
public class SecondHandHouse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 二手房源ID，主键 */
    private Long houseId;

    /** 小区ID，外键关联小区表 */
    @Excel(name = "小区ID，外键关联小区表")
    private Long communityId;

    /** 楼栋号 */
    @Excel(name = "楼栋号")
    private String buildingNo;

    /** 单元号 */
    @Excel(name = "单元号")
    private String unitNo;

    /** 楼层 */
    @Excel(name = "楼层")
    private Long floorNo;

    /** 房号 */
    @Excel(name = "房号")
    private String roomNo;

    /** 面积（平方米） */
    @Excel(name = "面积", readConverterExp = "平=方米")
    private BigDecimal area;

    /** 朝向 */
    @Excel(name = "朝向")
    private String orientation;

    /** 室数量 */
    @Excel(name = "室数量")
    private Long roomCount;

    /** 厅数量 */
    @Excel(name = "厅数量")
    private Long hallCount;

    /** 卫数量 */
    @Excel(name = "卫数量")
    private Long bathroomCount;

    /** 装修情况 */
    @Excel(name = "装修情况")
    private String decoration;

    /** 挂牌价格（万元） */
    @Excel(name = "挂牌价格", readConverterExp = "万=元")
    private BigDecimal price;

    /** 挂牌日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "挂牌日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date releaseDate;

    /** 状态（available-可售，sold-已售，reserved-已预订） */
    @Excel(name = "状态", readConverterExp = "a=vailable-可售，sold-已售，reserved-已预订")
    private String status;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 创建时间 */
    private Date createdAt;

    /** 更新时间 */
    private Date updatedAt;


    public String getAveragePrice() {
        return averagePrice;
    }

    public void setAveragePrice(String averagePrice) {
        this.averagePrice = averagePrice;
    }

    @TableField(exist = false)
    private String averagePrice;

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    @TableField(exist = false)
    private String imageUrl;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long hid;

    public void setHouseId(Long houseId) 
    {
        this.houseId = houseId;
    }

    public Long getHouseId() 
    {
        return houseId;
    }

    public void setCommunityId(Long communityId) 
    {
        this.communityId = communityId;
    }

    public Long getCommunityId() 
    {
        return communityId;
    }

    public void setBuildingNo(String buildingNo) 
    {
        this.buildingNo = buildingNo;
    }

    public String getBuildingNo() 
    {
        return buildingNo;
    }

    public void setUnitNo(String unitNo) 
    {
        this.unitNo = unitNo;
    }

    public String getUnitNo() 
    {
        return unitNo;
    }

    public void setFloorNo(Long floorNo) 
    {
        this.floorNo = floorNo;
    }

    public Long getFloorNo() 
    {
        return floorNo;
    }

    public void setRoomNo(String roomNo) 
    {
        this.roomNo = roomNo;
    }

    public String getRoomNo() 
    {
        return roomNo;
    }

    public void setArea(BigDecimal area) 
    {
        this.area = area;
    }

    public BigDecimal getArea() 
    {
        return area;
    }

    public void setOrientation(String orientation) 
    {
        this.orientation = orientation;
    }

    public String getOrientation() 
    {
        return orientation;
    }

    public void setRoomCount(Long roomCount) 
    {
        this.roomCount = roomCount;
    }

    public Long getRoomCount() 
    {
        return roomCount;
    }

    public void setHallCount(Long hallCount) 
    {
        this.hallCount = hallCount;
    }

    public Long getHallCount() 
    {
        return hallCount;
    }

    public void setBathroomCount(Long bathroomCount) 
    {
        this.bathroomCount = bathroomCount;
    }

    public Long getBathroomCount() 
    {
        return bathroomCount;
    }

    public void setDecoration(String decoration) 
    {
        this.decoration = decoration;
    }

    public String getDecoration() 
    {
        return decoration;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setReleaseDate(Date releaseDate) 
    {
        this.releaseDate = releaseDate;
    }

    public Date getReleaseDate() 
    {
        return releaseDate;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setHid(Long hid) 
    {
        this.hid = hid;
    }

    public Long getHid() 
    {
        return hid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("houseId", getHouseId())
            .append("communityId", getCommunityId())
            .append("buildingNo", getBuildingNo())
            .append("unitNo", getUnitNo())
            .append("floorNo", getFloorNo())
            .append("roomNo", getRoomNo())
            .append("area", getArea())
            .append("orientation", getOrientation())
            .append("roomCount", getRoomCount())
            .append("hallCount", getHallCount())
            .append("bathroomCount", getBathroomCount())
            .append("decoration", getDecoration())
            .append("price", getPrice())
            .append("releaseDate", getReleaseDate())
            .append("status", getStatus())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("hid", getHid())
            .toString();
    }
}
